In current storage networks, and particularly storage networks including geographically remote directors (or nodes) and storage resources, preserving or reducing bandwidth between resources and directors while providing optimized data availability and access is highly desirable. Data access may be localized, in part, to improve access speed to pages requested by host devices. Caching pages at directors provides localization, however, it is desirable that the cached data be kept coherent with respect to modifications at other directors that may be caching the same data. An example of a system for providing distributed cache coherence is described in U.S. Patent App. Pub. No. 2006/0031450 to Unrau et al., entitled “Systems and Methods for Providing Distributed Cache Coherency,” which is incorporated herein by reference. Other systems and techniques for managing and sharing storage array functions among multiple storage groups in a storage network are described, for example, in U.S. Pat. No. 7,266,706 to Brown et al. entitled “Methods and Systems for Implementing Shared Disk Array Management Functions,” which is incorporated herein by reference.
Data transfer among storage devices, including transfers for data replication or mirroring functions, may involve various data synchronization processing and techniques to provide reliable protection copies of data among a source site and a destination site. In synchronous transfers, data may be transmitted to a remote site and an acknowledgement of a successful write is transmitted synchronously with the completion thereof. In asynchronous transfers, a data transfer process may be initiated and a data write may be acknowledged before the data is actually transferred to directors at the remote site. Asynchronous transfers may occur in connection with sites located geographically distant from each other. Asynchronous distances may be distances in which asynchronous transfers are used because synchronous transfers would take more time than is preferable or desired. Particularly for asynchronous transfers, it is desirable to maintain a proper ordering of writes such that any errors or failures that occur during data transfer may be properly identified and addressed such that, for example, incomplete data writes be reversed or rolled back to a consistent data state as necessary. Reference is made, for example, to U.S. Pat. No. 7,475,207 to Bromling et al. entitled “Maintaining Write Order Fidelity on a Multi-Writer System,” which is incorporated herein by reference, that discusses features for maintaining write order fidelity (WOF) in an active/active system in which a plurality of directors (i.e. controllers and/or access nodes) at geographically separate sites can concurrently read and/or write data in a distributed data system. Discussions of data ordering techniques for synchronous and asynchronous data replication processing for other types of systems, including types of remote data facility (RDF) systems produced by EMC Corporation of Hopkinton, Mass., may be found, for example, in U.S. Pat. No. 7,613,890 to Meiri, entitled “Consistent Replication Across Multiple Storage Devices,” U.S. Pat. No. 7,054,883 to Meiri et al., entitled “Virtual Ordered Writes for Multiple Storage Devices,” and U.S. patent application Ser. No. 12/080,027 to Meiri et al., filed Mar. 31, 2008, entitled “Active/Active Remote Synchronous Mirroring,” which are all incorporated herein by reference and are assigned to the assignee of the present application.
Transferring an application, such as a virtual machine (VM), from one site to another is relatively straightforward when the sites are in synchronous communication. However, sites that are geographically distant, and thus in asynchronous communication, present more of a challenge. Of course, in instances where the destination site is maintained in a consistent data state corresponding to the state of the source at an earlier point in time, it is possible to restart the application (e.g., a VM) at the destination site. However, data provided at the source after the time of the consistent state is lost, and for some applications, this is unacceptable. It is also possible to first suspend the application at the source site, wait for all of the data to be transferred, and then resume the application in its current state at the destination site. Although this avoids the difficulties associated with restarting the application, there may be an unacceptable delay while waiting for the data to be transferred prior to resuming the application at the destination site.
Accordingly, it is desirable to provide an effective and efficient system to address issues like those noted above for a distributed storage system.